package com.pine.dcts.service;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.pine.dcts.entity.StepItem;
import com.pine.dcts.model.JobVO;
import com.pine.dcts.utils.Base64;

import java.util.ArrayList;
import java.util.List;

public class JobConfigBuilder {

    public static String buildConfig(JobVO jobVO) {
        // jobVO.getConfig().put("model","");
        JSONObject jobConfig = new JSONObject();
        JSONObject jobConfigAttr = new JSONObject();
        jobConfigAttr.put("id", jobVO.getId());
        jobConfigAttr.putAll(jobVO.getConfig().getJSONObject("datax"));
        List<JSONObject> configs = new ArrayList<>();
        List<StepItem> entries = jobVO.getItems();
        JSONObject jsonObject = new JSONObject();
        entries.forEach(entry -> {
            JSONObject jsonObject1 = new JSONObject();
            jsonObject1.put("name", entry.getName());
            String json = new String(Base64.decode(entry.getConfig()));
            jsonObject1.put("parameter", JSON.parseObject(json));
            jsonObject.put(entry.getType(), jsonObject1);
        });
        configs.add(jsonObject);
        jobConfigAttr.put("content", configs);
        jobConfig.put("job", jobConfigAttr);
        return JSON.toJSONString(jobConfig);
    }


}
